<?php

namespace app\utils\ui\ele\feedback;

use app\utils\exception\NotFoundView;
use app\utils\ui\vue\Base;
use app\utils\ui\VueView;

/**
 * 加载中，该组件不会生成标签
 */
class Loading extends Base implements VueView{


    /**
     * @param string $loading_field 是否显示加载中的字段
     * @param bool $fullscreen 是否全窗口展示加载中
     */
    public function __construct(string $loading_field,VueView $child,$fullscreen=false)
    {
        if(!$child || !($child instanceof VueView)){
            throw new NotFoundView('child 不存在');
        }
        
        parent::__construct([
            'v-loading'.($fullscreen ? '.fullscreen.lock' : '')=>$loading_field
        ],$child);
    }

    /**
     * 直接渲染下一级信息，不调用base_render
     */
    public function render()
    {
        return $this->child->render();
    }
}